package library

import (
	"fmt"
	"io"
	"os"
	"path/filepath"
	"regexp"
)

var regBlank = regexp.MustCompile(`(^\s*)|(\s*$)`)

// DislodgeBlank 删除首尾空
func DislodgeBlank(test string) string {
	return regBlank.ReplaceAllString(test, "")
}

// CopyFile 复制文件
// srcName 文件
// dstName 目标
func CopyFile(srcName, dstName string) (written int64, err error) {
	src, err := os.Open(srcName)
	if err != nil {
		fmt.Println("打开失败")
		return
	}
	defer src.Close()
	dst, err := os.OpenFile(dstName, os.O_WRONLY|os.O_CREATE, 0644)
	if err != nil {
		fmt.Println("写文件失败")
		return
	}
	defer dst.Close()
	return io.Copy(dst, src)
}

// PathExists 文件是否存在
func PathExists(path string) bool {
	_, err := os.Stat(path)
	if err == nil {
		return true
	}
	if os.IsNotExist(err) {
		return false
	}
	return false
}

// IsPath 验证路径
func IsPath(Path string, Name string) bool {
	// * 格式化输入
	Path = filepath.Clean(Path)
	// * 格式化路径
	path := filepath.Clean(Path + Name)
	// * 判定路径
	return len(path) > len(Path) && path[:len(Path)] == Path
}
